<?xml version="1.0" encoding="ISO-8859-1"?>
<build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd">
	<!-- Commonly used variants.

	These can be referenced from the command-line or in configurations.

	-->

	<!-- This variant enables building win32 tools in Linux. Tools2 on Linux only -->
	<var name="win32">
		<set name='TOOLS2WIN32' value='1'/>
		<env name='SBS_MINGW_LINUX_BIN' default='/usr/bin'/>
		<env name='SBS_MINGW_LINUX_PREFIX' default='i586-mingw32msvc'/>
		<env name='GCC' default='$(SBS_MINGW_LINUX_BIN)/$(SBS_MINGW_LINUX_PREFIX)-g++' type='tool'/>
		<env name='ARCHIVER' default='$(SBS_MINGW_LINUX_BIN)/$(SBS_MINGW_LINUX_PREFIX)-ar' type='tool'/>
		<env name='RANLIB' default='$(SBS_MINGW_LINUX_BIN)/$(SBS_MINGW_LINUX_PREFIX)-ranlib' type='tool'/>
		<env name='SBS_STLPORTINCDIR_WIN32' default='$(EPOCINCLUDE)/tools/stlport' type='path'/>
		<env name='SBS_STLPORTBINDIR_WIN32' default='$(EPOCROOT)/epoc32/release/tools2' type='path'/>
 		<set name='STLPORTBINDIR' value='$(SBS_STLPORTBINDIR_WIN32)/$(VARIANTTYPE)'/>
		<set name='SYSTEMINCLUDE' value='$(SBS_STLPORTINCDIR_WIN32)'/>
		<set name='RELEASEPATH' value='$(EPOCROOT)/epoc32/release/tools2/$(VARIANTTYPE)'/>
		<set name='DOTEXE' value='.exe'/>
		<set name='PLATMACROS.LINUX' value='$(PLATMACROS.WINDOWS)'/>
	</var>
	
	<!-- This variant enables STLport v 5.2 for tools2 builds - it is not needed to build STLport 
		 itself but only tools that link against it. -->
	<var name="stlport5_2">
		<set name='STLPORTLIBRARY' value='stlport.5.2'/>
		<env name='SBS_STLPORTINCDIR' default='$(EPOCINCLUDE)/tools/stlport5.2' type='path'/>
		<env name='SBS_STLPORTINCDIR_WIN32' default='$(EPOCINCLUDE)/tools/stlport5.2' type='path' host='lin.*'/>
	</var>
	
	<!-- This variant enables STLport v 5.1 for tools2 builds - it is not needed to build STLport 
		 itself but only tools that link against it; this will be useful when STLport 5.2 is the
		 default STLport version in tools2 builds. -->
	<var name="stlport5_1">
		<set name='STLPORTLIBRARY' value='stlport.5.1'/>
		<env name='SBS_STLPORTINCDIR' default='$(EPOCINCLUDE)/tools/stlport' type='path'/>
		<env name='SBS_STLPORTINCDIR_WIN32' default='$(EPOCINCLUDE)/tools/stlport' type='path' host='lin.*'/>
	</var>

	<!-- This variant turns debug info on for arm only -->
	<var name="debug_info">
		<set name='DEBUG_INFO' value='1'/>
	</var>

	<!-- Run this variant to turn on trace compiler -->
	<var name="tracecompiler">
		<set name='USE_TRACE_COMPILER' value='1'/>
		<env name='JAVA_HOME' default='' type='path'/>
		<env name='SBS_JAVATC' default='$(JAVA_HOME)/bin/java.exe' type='tool' versionCommand='$(SBS_JAVATC) -version' versionResult='version \"1\.[5-9]' host='win*' />
		<env name='SBS_JAVATC' default='$(JAVA_HOME)/bin/java' type='tool' versionCommand='$(SBS_JAVATC) -version' versionResult='version \"1\.[5-9]' host='lin*' />
	</var>

	<!-- Overrides the default debugging format for the ARM targets. -->
	<var name="dwarf3">
		<set name="DEBUG_FORMAT" value="$(CC.DWARF3)"/>
	</var>

	<var name="techview">
	</var>

	<var name="test">
		<set name='TESTCODE' value='TRUE'/>
	</var>

	<var name="savespace">
		<set name='SAVESPACE' value='TRUE'/>
	</var>
	
	<!-- This variant triggers linker feedback file generation, and its subsequent
		 use in compilation, with toolchains that support the functionality -->
	<var name="linkerfeedback">
		<set name='LINKERFEEDBACK' value='TRUE'/>
	</var>

	<var name="profilerfeedback">
		<set name='USE_PROFILER_FEEDBACK' value='TRUE'/>
		<env name='ARM_PROFILER_FILE' default='' type='path'/>
	</var>

	<var name="ltcg">
		<set name='LTCG' value='TRUE'/>
		<set name='LTCG_OPTION' value='--ltcg'/>
	</var>

	<var name="multifile">
		<set name='MULTIFILE_ENABLED' value='TRUE'/>
	</var>

	<!-- build from clean can skip some processing -->
	<var name="bfc">
		<set name='DEPEND_SKIP' value='TRUE'/>
	</var>

	<!-- SMP variant for Kernel Code -->
	<var name="smp">
		<append name="CDEFS" value="__SMP__"/>
		<append name="PLATMACROS.WINDOWS" value="SMP"/>
		<!-- PLATMACROS.LINUX is set from PLATMACROS.WINDOWS -->
		<append name="TRADITIONAL_PLATFORM" value='SMP' separator="" />
		<append name="VARIANTPLATFORM" value="smp" separator=""/>
		<set name="SUPPORTS_ABIV1_IMPLIBS" value=""/>
	</var>

	<!-- emit formatted releasable information into the logs for post-build parsing -->
	<var name="whatlog">
		<set name='WHATLOG' value='TRUE'/>
	</var>

	<var name="gcce4_3_2" extends="gcce_base">
		<env name="SBS_GCCE432BIN" type="toolchainpath" />
		<set name="GCCEBIN" value="$(SBS_GCCE432BIN)" />
		<set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)" type="tool" versionCommand="$(GCCECC) -dumpversion" versionResult="4.3.2"/>
		<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct3_1.dso drtrvct3_1.dso"/>
		<set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_3"/>
		<set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_3__"/>
	</var>

	<var name="gcce4_3_3" extends="gcce_base">
		<env name="SBS_GCCE433BIN" type="toolchainpath" />
		<set name="GCCEBIN" value="$(SBS_GCCE433BIN)" />
		<set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)" type="tool" versionCommand="$(GCCECC) -dumpversion" versionResult="4.3.3"/>
		<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct3_1.dso drtrvct3_1.dso"/>
		<set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_3"/>
		<set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_3__"/>
	</var>

	<var name="gcce4_4_1" extends="gcce_base">
		<env name="SBS_GCCE441BIN" type="toolchainpath" />
		<set name="GCCEBIN" value="$(SBS_GCCE441BIN)" />
		<set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)" type="tool" versionCommand="$(GCCECC) -dumpversion" versionResult="4.4.1"/>
		<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso"/>
		<set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_4"/>
		<set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_4__"/>
	</var>

	<var name="gcce4_5_1" extends="gcce_base">
		<env name="SBS_GCCE451BIN" type="toolchainpath" />
		<set name="GCCEBIN" value="$(SBS_GCCE451BIN)" />
		<set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)" type="tool" versionCommand="$(GCCECC) -dumpversion" versionResult="4.5.1"/>
		<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso"/>
		<set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_5"/>
		<set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_5__"/>
		<set name="LINKER_DEFAULT_LIBS" value="-lsupc++ -lgcc -lgcc_eh"/>
		<set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt4_0.lib"/>
		<set name="USER_STATIC_RUNTIME_LIB" value="usrt4_0.lib"/>
		<set name="USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS" value="usrt_nx_4_0.lib"/>
	</var>

	<var name="rvct2_2" extends="rvct_base">
		<env name="RVCT22BIN" type="toolchainpath"/>
		<env name="RVCT22INC" type="toolchainpath"/>
		<env name="RVCT22LIB" type="toolchainpath"/>
		<set name="RVCTBIN" value="$(RVCT22BIN)"/>
		<set name="RVCTINC" value="$(RVCT22INC)"/>
		<set name="RVCTLIB" value="$(RVCT22LIB)"/>
		<set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)" type="tool" versionCommand="$(ARMCC) --vsn" versionResult="Compiler, RVCT2\.2\b"/>
		<set name="OWN_LIBRARY_OPTION" value="-Ono_known_library"/>
		<set name="RELOCATABLE_IMAGE_OPTION" value="--reloc"/>
		<set name="SPLIT_OPTION" value="--split"/>
		<set name="PLATMACROS.VAR" value="ARMCC_2 ARMCC_2_2"/>
		<set name="ARMMACROS.VAR" value="__ARMCC_2__ __ARMCC_2_2__"/>
		<set name="SYMBIAN_LINK_FLAGS.VAR" value=""/>
		<set name="STATIC_LIBS_LIST" value="h_t__uf.l(switch8.o)"/>
		<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct2_2.dso drtrvct2_2.dso"/>
		<set name="USER_STATIC_RUNTIME_LIB" value="usrt2_2.lib"/>
		<set name="USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS" value="usrt_nx_2_2.lib"/>
		<set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt2_2.lib"/>
		<set name="NEED_ENTRYPOINT_LIBRARY" value=""/>
		<set name="CC.NO_UNALIGNED_ACCESS" value="--memaccess -UL41"/>
		<set name="CC.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
		<set name="PL.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
		<set name="CC.ARMV5" value="--cpu 5T"/>
		<set name="USE_RVCT22_DELETE_WORKAROUND" value="1" />
	</var>

	<var name="rvct3_1" extends="rvct_base">
		<env name="RVCT31BIN" type="toolchainpath"/>
		<env name="RVCT31INC" type="toolchainpath"/>
		<env name="RVCT31LIB" type="toolchainpath"/>
		<set name="RVCTBIN" value="$(RVCT31BIN)"/>
		<set name="RVCTINC" value="$(RVCT31INC)"/>
		<set name="RVCTLIB" value="$(RVCT31LIB)"/>
		<set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)" type="tool" versionCommand="$(ARMCC) --version_number" versionResult="310[6-9]\d\d\b"/>
		<set name="PLATMACROS.VAR" value="ARMCC_3 ARMCC_3_1"/>
		<set name="ARMMACROS.VAR" value="__ARMCC_3__ __ARMCC_3_1__"/>
		<set name="SYMBIAN_LINK_FLAGS.VAR" value="--export_all"/>
		<set name="STATIC_LIBS_LIST" value="h_5.l"/>
		<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct3_1.dso drtrvct3_1.dso"/>
		<set name="USER_STATIC_RUNTIME_LIB" value="usrt3_1.lib"/>
		<set name="USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS" value="usrt_nx_3_1.lib"/>
		<set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt3_1.lib"/>
		<set name="CC.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
		<set name="PL.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
		<set name="CC.SOFTVFP_MAYBE_VFPV3" value="softvfp"/>
		<set name="PL.SOFTVFP_MAYBE_VFPV3" value="softvfp"/>
	</var>

	<var name="rvct4_0" extends="rvct_base">
		<env name="RVCT40BIN" type="toolchainpath"/>
		<env name="RVCT40INC" type="toolchainpath"/>
		<env name="RVCT40LIB" type="toolchainpath"/>
		<set name="RVCTBIN" value="$(RVCT40BIN)"/>
		<set name="RVCTINC" value="$(RVCT40INC)"/>
		<set name="RVCTLIB" value="$(RVCT40LIB)"/>
		<set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)" type="tool" versionCommand="$(ARMCC) --version_number" versionResult="400[4-9]\d\d\b"/>
		<set name="PLATMACROS.VAR" value="ARMCC_4 ARMCC_4_0"/>
		<set name="ARMMACROS.VAR" value="__ARMCC_4__ __ARMCC_4_0__"/>
		<set name="SYMBIAN_LINK_FLAGS.VAR" value="--override_visibility $(LINKER_INLINE_OPTION)"/>
		<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso"/>
		<set name="USER_STATIC_RUNTIME_LIB" value="usrt4_0.lib"/>
		<set name="USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS" value="usrt_nx_4_0.lib"/>
		<set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt4_0.lib"/>
	</var>

	<var name="rvct4_1" extends="rvct_base">
		<env name="ARMCC41BIN" type="toolchainpath"/>
		<env name="ARMCC41INC" type="toolchainpath"/>
		<env name="ARMCC41LIB" type="toolchainpath"/>
		<set name="RVCTBIN" value="$(ARMCC41BIN)"/>
		<set name="RVCTINC" value="$(ARMCC41INC)"/>
		<set name="RVCTLIB" value="$(ARMCC41LIB)"/>
		<set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)" type="tool" versionCommand="$(ARMCC) --vsn" versionResult="Compiler, 4\.1\b"/>
		<set name="PLATMACROS.VAR" value="ARMCC_4 ARMCC_4_1"/>
		<set name="ARMMACROS.VAR" value="__ARMCC_4__ __ARMCC_4_1__"/>
		<set name="SYMBIAN_LINK_FLAGS.VAR" value="--override_visibility $(LINKER_INLINE_OPTION)"/>
		<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso"/>

		<!-- These are good enough for now. -->
		<set name="USER_STATIC_RUNTIME_LIB" value="usrt4_0.lib"/>
		<set name="USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS" value="usrt_nx_4_0.lib"/>
		<set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt4_0.lib"/>
	</var>

	<var name="gccx86" extends="gccx86_base">
		<env name="SBS_GCCX86BIN" type="toolchainpath" />
		<set name="GCCX86BIN" value="$(SBS_GCCX86BIN)" />
		<set name="GCCX86CC" value="$(GCCX86BIN)/g++$(DOTEXE)" type="tool" versionCommand="$(GCCX86CC) -dumpversion" versionResult="3\.4\.5"/>
		<set name="RUNTIME_LIBS_LIST" value=""/>
	</var>

	<!-- Support x86 gcc build into a toolchain-specific tree -->
	<var name="release_x86gcc">
		<set name="VARIANTPLATFORM" value="x86gcc" />
	</var>

	<var name="urel">
		<set name="DEBUG_INFO" value=""/>
		<set name="SYMBIAN_CCFLAGS" value="$(REL_OPTIMISATION)"/>
		<set name="VARIANTTYPE" value="urel"/>
		<append name="CDEFS" value="NDEBUG"/>
	</var>

	<var name="udeb">
		<set name="DEBUG_INFO" value="1"/>
		<set name="SYMBIAN_CCFLAGS" value="$(DEBUG_OPTIMISATION)"/>
		<set name="VARIANTTYPE" value="udeb"/>
		<append name="CDEFS" value="_DEBUG"/>
	</var>

	<var name="remove_freeze">
		<set name='EFREEZE_REMOVE_OPTION' value='-Remove'/>
	</var>

	<var name="slimdebug">
		<append name='DEBUG_OPTIMISATION' value="$(DEBUGINFO_OPTIMISATION)"/>
	</var>

	<!-- OS variant mechanism is now deprecated. We retain the values for
	     versions older than TB92sf until the mechanism is removed. -->

	<!-- variant for OS version v9.4 -->
	<var name="v94">
		<set name='POSTLINKER_SUPPORTS_WDP' value=''/>
		<set name='SUPPORTS_STDCPP_NEWLIB' value=''/>
		<set name='RVCT_PRE_INCLUDE' value='$(EPOCINCLUDE)/rvct2_2/rvct2_2.h'/>
	</var>

	<!-- variants for OS version TB91* (the same as OS v9.4) -->
	<var name="vtb91" extends="v94"/>
	<var name="vtb91sf" extends="v94"/>

	<!-- these OS variants are deliberately empty -->
	<var name="v95"/>
	<var name="v96"/>
	<var name="vFuture"/>
	<var name="vtb92"/>
	<var name="vtb92sf"/>
	<var name="vtb101"/>
	<var name="vtb101sf"/>

	<!-- WINSCW specific variant for pick up nested relative include headers correctly -->
	<var name="mwccinc">
		<set name='OPTION_CW' value='-cwd include'/>
	</var>

	<!-- Variant to allow GCCE-built binaries to be created in epoc32/release/gcce,
	     epoc32/release/gccev6 and epoc32/release/gccev7 -->
	<var name="release_gcce">
		<set name="VARIANTPLATFORM" value="gcce" />
		<set name="STATIC_RUNTIME_DIR" value="$(EPOCROOT)/epoc32/release/armv5/$(VARIANTTYPE)"/>
		<set name="STATIC_LIBRARY_DIR" value="$(EPOCROOT)/epoc32/release/armv5/$(VARIANTTYPE)"/>
	</var>
	<var name="release_gccev6" extends="release_gcce" >
		<set name="VARIANTPLATFORM" value="gccev6" />
	</var>
	<var name="release_gccev7" extends="release_gcce" >
		<set name="VARIANTPLATFORM" value="gccev7" />
	</var>

	<!-- Variant to permit a workaround for an armlink 2.2 crash with very large targets -->
	<var name="nodebug">
		<set name="DEBUG_INFO" value=""/>
	</var>

	<!-- for builds which don't need a populated .hrh file -->
	<var name="nohrh">
		<set name="VARIANT_HRH" value="$(SBS_HOME)/lib/config/empty.hrh"/>
	</var>
	
	<!-- triggers builds to use command files in compilation calls, where supported -->
	<var name="use_compilation_command_file">
		<set name="USE_COMPILATION_COMMAND_FILE" value="TRUE"/>
	</var>

	<var name='remove_unused_sections'>
		<!-- this rvct option causes the linker to remove unused input sections, reducing symbol file size -->
		<set name="REMOVE_UNUSED_SECTIONS" value="TRUE"/>
	</var>
</build>
